Previous: Running Hooks, Up: Hooks [Contents][Index]
Here’s an example that uses a mode hook to turn on Auto Fill mode when in Lisp Interaction mode:
(add-hook 'lisp-interaction-mode-hook 'auto-fill-mode)
This function is the handy way to add function function to hook variable hook. You can use it for abnormal hooks as well as for normal hooks. function can be any Lisp function that can accept the proper number of arguments for hook. For example,
(add-hook 'text-mode-hook 'my-text-hook-function)
adds my-text-hook-function to the hook called
text-mode-hook.
If function is already present in
hook (comparing using equal), then
add-hook does not add it a second time.
If function has a non-nil property
permanent-local-hook, then
kill-all-local-variables (or changing major
modes) won’t delete it from the hook variable’s
local value.
For a normal hook, hook functions should be designed so
that the order in which they are executed does not matter.
Any dependence on the order is asking for trouble. However,
the order is predictable: normally, function goes
at the front of the hook list, so it is executed first
(barring another add-hook call). If the optional
argument append is non-nil, the new
hook function goes at the end of the hook list and is
executed last.
add-hook can handle the cases where
hook is void or its value is a single function; it
sets or changes the value to a list of functions.
If local is non-nil, that says to
add function to the buffer-local hook list instead
of to the global hook list. This makes the hook buffer-local
and adds t to the buffer-local value. The latter
acts as a flag to run the hook functions in the default value
as well as in the local value.
This function removes function from the hook
variable hook. It compares function
with elements of hook using equal, so
it works for both symbols and lambda expressions.
If local is non-nil, that says to
remove function from the buffer-local hook list
instead of from the global hook list.
Previous: Running Hooks, Up: Hooks [Contents][Index]